import axios from 'axios'

import { ElMessage } from 'element-plus'
import  config from '@/config/config.js'
  const service = axios.create({
    baseURL:config.baseApi
  })
const NETWORK_ERROR='网络错误'
// 添加请求拦截器
service.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use((res) => {
  const { code, data, msg } = res.data
  if (code === 200) {
    return data
  } else {
    ElMessage.error(msg || NETWORK_ERROR)
    return Promise.reject(error);
  }
})
function request(options) {
  options.method = options.method || "get";
  //关于get请求
  if (options.method.toLowerCase() === "get") {
    options.params=options.data
  }
  //对mock开关做处理
  let isMock = config.mock
  if (typeof options.mock!=='undefine') {
    isMock=options.mock
  }
    //针对环境作一个处理
    if (config.env === 'prod') {
      //不能用mock
      service.defaults.baseURL=config.baseApi
    } else {
      service.defaults.baseURL=isMock?config.mockApi :config.baseApi
    }
  return service(options);

}
  export default request